<?php
include_once('services.common.php');

class System_Tools {
	
	private  $db = null;
	private  $log = null;

	public function System_Tools(){
		$this->db = DataService::getInstance();
		$this->log = Logger::getRootLogger();
	}
	
	private function isDir($dir) {
		$cwd = getcwd();
		$returnValue = false;
		if (@chdir($dir)) {
			chdir($cwd);
			$returnValue = true;
		}
		return $returnValue;
	}
	
	private function empty_dir($dir){
	
		$i = 0;
	
		if ($handle = opendir($dir)) {

			$extent = array ( 
				0 => '.',
				1 => '..'
			);
			while (false !== ($dir2 = readdir($handle))) {
				if(!in_array($dir2, $extent)){
					if(is_dir($dir2))
						$i += $this->empty_dir($dir2);
					else{
						$i++;
						//unlink($dir);
						echo "unlink($dir2) </br>";
					}				
				}
			}
			closedir($handle);
			//rmdir($dir);
			$i++;
			echo "rmdir($dir) </br>";
			echo "i = $i </br>";
		}
		
		return $i;
	}
	
	public function clean_directory($dir, $regex, $root = null){
		
		$i = 0;
		if($root != null)
			$dir = $root."/".$dir;
		$root = $dir;
		echo "</br>dir = $dir </br>";
		echo "root = $root </br>";
		if ($handle = opendir($dir)) {

			$extent = array ( 
				0 => '.',
				1 => '..'
			);
				
			while( false !== ($file = readdir($handle)) ){
				if(!in_array($file, $extent)){
					echo "file = $file </br>";
					if(is_dir($file)){
						echo "is_dir</br>";
						if ( preg_match($regex, $file) )
							$i+=$this->empty_dir($file);
						else{
							echo "else:{ file:$file, regex:$regex, root:$root }</br>";
							$i+=$this->clean_directory($file, $regex, $root);
							echo "</br>";
						}
					}
					elseif( preg_match($regex, $dir) ){
						$i++;
						//unlink($dir);
						echo "unlink($file) </br>";
					}
				}
			}
			
			closedir($handle);
			
			return $i;
			
		}	
	
	
	}
}